﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using CapturarObjetos.Objetos;

namespace CapturarObjetos.Nucleo
{
    class HUD
    {
        //Sprite do item da hud
        Texture2D image;

        //Posição do item da hud
        Vector2 pos;

        
        //Retangulo de colisão
        public Rectangle BoundingBox
        {
            get
            {
                return new Rectangle(
                    (int)pos.X,
                    (int)pos.Y,
                    image.Width,
                    image.Height);
            }
        }

        //Lista de objetos de hud
        public static List<HUD> hud_items = new List<HUD>();



        public HUD(Texture2D image, Vector2 pos)
        {
            this.image = image;
            this.pos = pos;
            hud_items.Add(this);
        }


        public void Update(MouseState mouse, MouseState mouse_anterior, Jogador jogador, string type)
        {


            if (!jogador.isMoving)
            {
                if ((mouse.LeftButton == ButtonState.Pressed))
                {
                    if (this.BoundingBox.Intersects(new Rectangle(mouse.X, mouse.Y, 1, 1)))
                    {

                        switch (type)
                        {
                            case "Down":
                                {
                                    Power_Bar.visible = true;
                                    jogador.isMoving = true;
                                    break;
                                }
                            case "Left":
                                {
                                    Console.WriteLine(jogador.Posicao);
                                    jogador.doMove(jogador, 0, 1);
                                    break;
                                }
                            case "Right":
                                {
                                    jogador.doMove(jogador, 0, -1);
                                    break;
                                }
                        }
                    }


                }
            }

        }



        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(image, pos, Color.White);
        }

    }
}
